/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package argtrust.argsys;

/**
 *
 * @author Yuqing Tang
 */
public class LabelStatus extends ArgumentStatus {

    public static final int OUT = 0;
    public static final int IN = 1;
    public static final int UNDEC = 2;
    ///Local marking 
    static final int _EXPLORING = 3;
    static final int _UNDEF = 4;
    int _status = _UNDEF;
    boolean _isFinal = false;
    
    public LabelStatus() {
    }

    public LabelStatus(int status) {
        _status = status;
    }

    public int getStatus() {
        return _status;
    }
    public void setFinal()
    {
        _isFinal = true;
    }
    public void unsetFinal()
    {
        _isFinal = false;
    }
    public boolean isFinal()
    {
        return _isFinal;
    }
    public void setStatus(int _status) {
        this._status = _status;
    }

    public boolean isExploring() {
        return _status == _EXPLORING;
    }

    public void setExploring() {
        _status = _EXPLORING;
    }

    public boolean isOut() {
        return _status == OUT;
    }

    public boolean isIn() {
        return _status == IN;
    }

    public boolean isUndec() {
        return _status == UNDEC;
    }
    public boolean isUndef() {
        return _status == _UNDEF;
    }

    @Override
    public String toString() {
        switch (_status) {
            case IN:
                return "IN";
            case OUT:
                return "OUT";
            case UNDEC:
                return "UNDEC";
            default:
                return "undefined";
        }
    }
}
